package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import com.itheima.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@Slf4j
public class LoginController {

    @Autowired
    private EmpService empService;

   /*
      实现处理登录的功能
    */
    @PostMapping("/login")
    public Result login(@RequestBody Emp emp){//emp是来接收 用户名和密码的
        // 需要  empService  完成登录  其实就是 根据用户名和密码 查询 一个用户信息
        Emp loginEmp = empService.login(emp);//emp里面是用户名和密码信息
          // loginEmp 是去数据库查询出来 返回的对象 可能有可能没
        // 密码用户对了 不是null  用户密码错了 就是null
        if(loginEmp!=null){
            // 设置存到令牌中的数据
            Map<String,Object> data=new HashMap<>();
            data.put("id",loginEmp.getId());//谁登录了
            data.put("username",loginEmp.getUsername());//登录人账号
            data.put("name",loginEmp.getName());//登录人名字
           // 生成一个令牌
            String jwt = JwtUtils.generateJwt(data);

            // 下发给浏览器
            return Result.success(jwt);
        }
        //否则
        return Result.error("用户名或者密码错误");
    }
}
